package pt.uminho.di.poo.transitarios.pessoa;

import pt.uminho.di.poo.transitarios.util.Morada;
import pt.uminho.di.poo.transitarios.util.NIF;

public abstract class AbstractPessoa implements IPessoa {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String codigo;
	private Morada morada;
	private String nacionalidade;
	private String nome;
	private NIF numeroContribuinte;

	public AbstractPessoa(Morada morada, String nacionalidade, String nome,
			NIF numeroContribuinte, String codigo) {
		super();
		this.morada = morada;
		this.nacionalidade = nacionalidade;
		this.nome = nome;
		this.numeroContribuinte = numeroContribuinte;
		this.codigo = codigo;
	}

	@Override
	public int compareTo(IPessoa o) {
		return this.getCodigo().compareTo(o.getCodigo());
	}

	@Override
	public String getCodigo() {

		return this.codigo;
	}

	public Morada getMorada() {
		return this.morada;
	}

	public String getNacionalidade() {
		return this.nacionalidade;
	}

	public String getNome() {
		return this.nome;
	}

	public NIF getNumeroContribuinte() {
		return this.numeroContribuinte;
	}

	public void setMorada(Morada morada) {
		this.morada = morada;
	}

	public void setNacionalidade(String nacionalidade) {
		this.nacionalidade = nacionalidade;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public void setNumeroContribuinte(NIF numeroContribuinte) {
		this.numeroContribuinte = numeroContribuinte;
	}

}
